Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
跳到主要内容

了解 CloudTrail 事件字段的安全重要性

AWS CloudTrail 事件字段提供了有关 API 活动、用户身份和资源交互的详细信息,使安全调查期间能够进行精确的跟踪和分析。本节概述了关键的 CloudTrail 事件字段、其安全意义以及在取证分析和事件响应中的推荐用例。

安全调查的关键 CloudTrail 事件字段

以下是最关键的 CloudTrail 事件字段的详细说明,包括其在安全调查中的重要性,以及如何在事件响应中有效利用这些字段。

探索 CloudTrail 记录内容

要了解 AWS CloudTrail 记录内容 的完整详情,包括 eventNameeventSourcerequestParameters 等关键字段,请查看我们的综合文档。通过完整的日志洞察增强您的安全取证和事件响应能力。

关键事件字段

  • 1. userIdentity

    • 描述:包含发出请求的 IAM 身份的详细信息,包括 type(如 IAMUser、AssumedRole、Root)、principalIdarnaccountIduserNamesessionContext
    • 安全重要性:识别事件背后的操作者,能够确定是否涉及被入侵的用户、角色或根账户。它还支持跟踪跨账户访问。
    • 用例:使用 userIdentity 确定恶意行为者是否使用被盗的 IAM 凭证或假冒角色进行权限提升。如果 typeRoot,由于根账户被入侵风险极高,应立即升级处理。
  • 2. userIdentity.accessKeyId

    • 描述:标识请求中使用的访问密钥。
    • 安全重要性:跟踪多个事件中被泄露的凭证,因为恶意行为者经常重复使用被盗的访问密钥。
    • 用例:使用 accessKeyId 关联可疑活动以确定泄露范围。如果为空(如控制台操作),则与 userIdentity.sessionContext 交叉参考以确认会话类型。
  • 3. userIdentity.userName

    • 描述:指定 IAM 用户的名称。
    • 安全重要性:跟踪特定用户的活动,尤其是在有多个访问密钥时。
    • 用例:将 userNameuserIdentity.principalId 交叉参考以实现一致的身份跟踪。
  • 4. userIdentity.principalId

    • 描述:提供发出请求的实体的唯一标识符。
    • 安全重要性:跨会话关联操作,尤其适用于临时凭证。
    • 用例:使用 principalId 跟踪恶意行为者在假冒角色或会话之间的移动。
  • 5. userIdentity.sessionContext

    • 描述:详细说明假冒角色或联合会话的信息,包括 sessionIssuersourceIdentity
    • 安全重要性:对于理解跨账户访问或角色链攻击至关重要。如果请求是使用临时安全凭证发出的,sessionContext 会提供为这些凭证创建的会话信息。当您调用任何返回临时凭证的 API 时,都会创建会话。用户在控制台中工作并使用包含多因素身份验证的 API 发出请求时,也会创建会话。
    • 用例:在角色假冒场景中,分析 sessionContext.sourceIdentity 以追踪攻击源头。
  • 6. userIdentity.type

    • 描述:指定身份类型(如 IAMUserRootAssumedRole)。
    • 安全重要性:识别高风险操作,如 Root 的使用,需要立即升级处理。
    • 用例:按 userIdentity.type 筛选,优先调查涉及特权身份的事件。
  • 7. userIdentity.arn

    • 描述:提供主体的 Amazon Resource Name。
    • 安全重要性:确保在复杂环境中精确识别操作者。
    • 用例:使用 arn 将操作追溯到特定的 IAM 实体。
  • 8. userIdentity.accountId

    • 描述:标识拥有该实体的 AWS 账户。
    • 安全重要性:在跨账户场景中隔离源账户。
    • 用例:与 recipientAccountId 交叉参考以检测未授权访问。
  • 9. userIdentity.sessionIssuer

    • 描述:标识颁发会话凭证的实体(如角色)。
    • 安全重要性:跟踪基于角色的攻击中临时凭证的来源。如果用户使用临时安全凭证发出请求,sessionIssuer 会提供用户如何获得凭证的信息。例如,如果他们通过假冒角色获得临时安全凭证,此元素会提供被假冒角色的信息。如果他们使用根或 IAM 用户凭证调用 AWS STS GetFederationToken,此元素会提供根账户或 IAM 用户的信息。
    • 用例:在 AssumedRole 事件中分析 sessionIssuer 以进行权限提升分析。
  • 10. userIdentity.invokedBy

    • 描述:指示是否由 AWS 服务(如 Lambda)发出请求。
    • 安全重要性:区分服务发起的操作与用户活动,识别配置错误或被利用的角色。
    • 用例:调查 invokedBy 中服务行为的异常。
  • 11. eventTime

    • 描述:记录活动的 UTC 时间戳。
    • 安全重要性:建立攻击时间线,确定初始入侵点并跨系统关联事件。
    • 用例:排列恶意行为者的操作顺序并确定未授权访问的持续时间。在异常时间出现的 API 调用激增可能表示存在恶意活动。
  • 12. eventName

    • 描述:指定 AWS API 操作(如 GetCallerIdentityCreateAccessKeyDeleteBucket)。
    • 安全重要性:揭示恶意行为者的技术,如侦察(ListUsers)或权限提升(CreateAccessKey)。
    • 用例:分析 eventName 以识别高风险操作,如修改 IAM 策略或禁用日志记录,这些操作表明意图持久化或逃避检测。
  • 13. eventSource

    • 描述:标识目标 AWS 服务(如 iam.amazonaws.coms3.amazonaws.com)。
    • 安全重要性:确定受影响的服务,帮助确定修复优先级。
    • 用例:调查 eventSourcests.amazonaws.comeventNameAssumeRole 的事件以检测角色链攻击。筛选日志以关注被入侵的服务。
  • 14. sourceIPAddress

    • 描述:指示请求来源的 IP 地址。
    • 安全重要性:识别攻击的地理来源和潜在威胁行为者。
    • 用例:将 sourceIPAddress 与威胁情报源交叉参考以检测可疑来源。如果显示 "AWS Internal/#",则调查服务角色或配置错误。
  • 15. userAgent

    • 描述:详细说明使用的应用程序或工具(如 aws-cliaws-sdk-java)。
    • 安全重要性:识别恶意行为者使用的可疑工具或非标准应用程序。
    • 用例:监控 userAgent 中的异常,如非 AWS SDK,这可能表示偏离正常组织模式的恶意工具。
  • 16. errorCode 和 errorMessage

    • 描述:指示 API 调用是否失败及原因(如 AccessDenied)。
    • 安全重要性:揭示失败的攻击尝试和权限边界,提供对恶意行为者范围的洞察。
    • 用例:针对 CreateAccessKey 的多个 AccessDenied 错误可能表示权限测试。使用这些字段来优化安全控制。
  • 17. requestParameters

    • 描述:包含与 API 调用一起发送的参数,如资源名称或配置。对于执行更改(创建、更新或删除操作)的操作的响应元素(如有)。对于只读 API,此字段为 null。如果操作不返回响应元素,此字段为 null。操作的响应元素记录在相应 AWS 服务的 API 参考文档中。
    • 安全重要性:揭示 API 调用的具体输入和恶意行为者操作发送的配置详情。
    • 用例:分析 CreateBucket 调用中的 requestParameters 以识别存储桶名称用于修复。
  • 18. responseElements

    • 描述:包含 API 调用的输出,如新创建的访问密钥或资源 ARN。对于执行更改(创建、更新或删除操作)的操作的响应元素(如有)。对于只读 API,此字段为 null。如果操作不返回响应元素,此字段为 null。操作的响应元素记录在相应 AWS 服务的 API 参考文档中。
    • 安全重要性:包含关键信息,如新创建的资源、访问密钥和其他工件。
    • 用例:在 CreateAccessKey 事件中使用 responseElements 停用新密钥并撤销未授权的更改。
  • 19. resources

    • 描述:列出被访问或修改的 AWS 资源,包括 ARN 和资源类型。
    • 安全重要性:识别受影响的资产,如 S3 存储桶或 IAM 角色,用于修复。
    • 用例:在 DeleteObject 事件中使用 resources 确定受影响的 S3 对象并优先恢复。
  • 20. eventType

    • 描述:对事件进行分类(如 AwsApiCallAwsConsoleSignIn)。
    • 安全重要性:区分基于 API 的攻击、控制台登录或服务发起的操作。
    • 用例:筛选 AwsConsoleSignIn 事件以检测未授权的控制台访问并验证 MFA。
  • 21. recipientAccountId

    • 描述:标识接收请求的 AWS 账户。
    • 安全重要性:在多账户组织中跟踪跨账户活动。
    • 用例:调查 recipientAccountId 是否与 userIdentity.accountId 不同以检测未授权的跨账户访问。
  • 22. awsRegion

    • 描述:指定请求的 AWS 区域。
    • 安全重要性:建立地理模式和事件范围。
    • 用例:按 awsRegion 筛选日志以识别未使用区域中的异常。
  • 23. readOnly

    • 描述:指示 API 调用是只读(true)还是写入(false)。
    • 安全重要性:区分侦察操作和修改操作。
    • 用例:关注写入操作以发现潜在的数据篡改或持久化。
  • 24. eventID

    • 描述:唯一标识每个 CloudTrail 事件。
    • 安全重要性:能够引用特定事件并与 SIEM 工具等外部系统进行关联。
    • 用例:使用 eventID 作为日志聚合和跟踪的主键。
  • 25. serviceEventDetails

    • 描述:提供特定服务的上下文信息,如 IAM Identity Center 联合事件。
    • 安全重要性:通过专门的服务详情增强调查。
    • 用例:分析 IAM Identity Center 事件的 serviceEventDetails 以审计联合用户操作。
探索 userIdentity 元素

有关理解 AWS CloudTrail 日志中 userIdentity 元素的综合指南,包括其字段(如 typeuserNamearn),请访问我们的详细文档。获取有效安全取证和事件响应的洞察。

CloudTrail 最佳实践

为了最大化 CloudTrail 在安全调查中的有效性,请为 AWS Organization 中的所有区域和账户启用 CloudTrail。确保日志安全地存储在具有限制访问的 S3 存储桶中,并启用日志文件完整性验证以检测篡改。使用 Amazon Athena 或 CloudTrail Lake 等工具定期分析这些字段以识别异常并及时响应事件。

AWS 访问密钥被入侵的示例分析工作流程

  1. 识别操作者:使用 userIdentity 字段(typeuserNamearnaccountIdprincipalId)确定涉及的身份。如果检测到 Root,立即升级处理。
  2. 建立时间线:使用 eventTime 排列事件顺序并确定攻击持续时间。
  3. 分析操作:查看 eventNameeventSourcereadOnly 以了解恶意行为者的技术和受影响的服务。
  4. 跟踪资源:使用 resourcesrequestParametersresponseElements 识别目标或已修改的资产以进行修复。
  5. 调查访问:交叉参考 sourceIPAddressuserAgentrecipientAccountIdsessionContext 以检测未授权访问或角色链。
  6. 查看错误:分析 errorCodeerrorMessage 以识别被 IAM 策略阻止的尝试操作。
  7. 关联事件:使用 eventIDserviceEventDetails 与 SIEM 工具集成并进行详细的取证分析。